/*
 * 1.0 = 1m 
 *  => 0.01 = 1cm; 1000.0 = 1km
*/

#ifndef _TRANSFORM_H
#define _TRANSFORM_H

#include <mesh/mesh.h>
#include <app/ameTypes.h>

class Transform {
public:
    Transform ( ame::vec3 position, ame::vec3 rotation );
    Transform ();

    void setMesh ( Mesh* );
        
    void setX ( double x );
    void setY ( double y );
    void setZ ( double z );

    /* DEV FUNCTIONS */
    double returnX ();
    double returnY ();
    double returnZ ();

    void setPosition ( ame::vec3 );
    void translate( ame::vec3 direction );

    void setRotation ( ame::vec3 );
    void rotate ( ame::vec3 );

    void updateMesh ();
    
private:
    ame::vec3 position;
    ame::vec3 rotation;
    ame::vec3 scale;

    Mesh* currentMesh;
};

#endif // _TRANSFORM_H
